package com.lvmama.rhino.service.comment;

import com.github.pagehelper.PageInfo;
import com.lvmama.rhino.pojo.comment.entity.CommentTendency;
import com.lvmama.rhino.pojo.comment.entity.ProductCommentAnalysis;
import com.lvmama.rhino.pojo.comment.query.CommentTendencyQuery;
import com.lvmama.rhino.pojo.comment.query.ProductRankPageQuery;
import com.lvmama.rhino.pojo.comment.query.ProductViewPointRankQuery;
import com.lvmama.rhino.pojo.comment.response.CommentTendencyResponse;
import com.lvmama.rhino.pojo.comment.response.ProductViewPointRankResponse;
import net.sf.json.JSONArray;

import java.util.List;

/**
 * 产品评价分析
 */
public interface ProductAnalysisService {
    /**
     * 查询产品列表
     * @param productCommentAnalysis 请求参数
     * @return 结果集
     */
	List<ProductCommentAnalysis> getProductList(ProductCommentAnalysis productCommentAnalysis);

	/**
	 * 评价分析分页查询
	 * @param query 查询参数
	 * @return 分页
	 */
	PageInfo<ProductCommentAnalysis> getProductRankPage(ProductRankPageQuery query);

	/**
	 * 查询产品评论趋势
	 * @param query 查询条件
	 * @return 结果集
	 */
	List<CommentTendency> selectProductCommentTendency(CommentTendencyQuery query);

    /**
     * 查询产品当年点评趋势
     * @param productId 产品id
     * @return 结果集
     */
    List<CommentTendencyResponse> selectProductCurrentYearCommentTendency(String productId);

	/**
	 * 查询产品的热词排行
	 * @param query 查询条件
	 * @return 结果集
	 */
	ProductViewPointRankResponse selectProductViewPointRank(ProductViewPointRankQuery query);

	/**
	 * 产品评价排名
	 * @param param
	 * @return
	 */
	JSONArray getProductSortRank(ProductRankPageQuery param);
}
